I am researching a software reliability model that has many parameters that need to be estimated. I want to use a maximum likelihood estimator (MLE) to estimate those parameters.
After I searched this site for similar problems, I know that SuperLog in SMLE.m package is helpful for MLE. And I find the paper(http://www.tri.org.au/RoseSmithD.pdf), this paper provided code of SMLE.m in Appendix B. I try to copy code from Appendix B and follow instruction in the lower half of page 230, but I still can not get the expected result(See following image).
Can anyone help me? My research is suspended for this point.Thanks in advance.
SMLE.m which I copy from the paper:
(*:Name: SMLE *) (*:Authors: Colin Rose and Murray D. Smith *) (*:Version: Mathematica v3, or v4, or later required *) (*:Legal: Copyright 1999 *) (*:Summary: Symbolic Maximum Likelihood Estimation *) BeginPackage["SMLE`"] SuperLog::usage ="SuperLog[On] activates the enhanced Log operator, so that Log[Product[_ _]] objects get converted into sums of logs. SuperLog[Off] switches the enhancement off." Begin["`Private`"] SuperLog[Q_]:=Module[{erk, iii, nnn}, Product[iii,{iii,nnn}]; (* pre-load Product *) Which[ Q === On, Unprotect[Log]; Clear[Log]; Log[Product[x_, {k_, a_, b_}]]:=Log[Product[Times[erk, x], {k, a, b}]]/.erk ->1; Log[Product[HoldPattern[Times[x__]], {k_, a_, b_}]]:=Simplify[Map[Sum[#, {k, a, b}]&, Plus@@Map[Expand[PowerExpand[Log[#]]]&,List[x]]]//.Sum[u_. w_, {kk_, aa_, bb_}] :>u Sum[w,{kk, aa, bb}] /; FreeQ[u, kk]==True]; Protect[Log]; Print["SuperLog is now On."], Q === Off, Unprotect[Log]; Clear[Log]; Protect[Log]; Print["SuperLog is now Off."], True, Print["Carumbah! Please use SuperLog[On] or SuperLog[Off]."] ]] End[] Protect[ SuperLog ]; Link of SMLE.m : https://www.dropbox.com/s/e8w8yc15z8t3rw1/SMLE.m





InputFormrather than $\LaTeX{}$ or images. $\endgroup$